package com.winsdom.domain.dto.collection;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

@Data
@ApiModel("客户通知默认配置")
public class NotificationDefaultConfigDTO {

    @ApiModelProperty(value = "缴款是否通知（0：不通知 1：通知 也可以使用true与false表示）",hidden = true)
    @NotNull(message = "缴款通知状态不能为空")
    private Boolean paymentNotifyEnabled = true;

    @ApiModelProperty(value = "缴款通知方式(1：邮箱 0：短信 2：全选)", required = true)
    @NotNull(message = "缴款通知方式不能为空")
    @Min(value = 0, message = "缴款通知方式必须为0、1、2")
    @Max(value = 2, message = "缴款通知方式必须为0、1、2")
    private Integer paymentNotifyType;

    @ApiModelProperty(value = "催收是否通知(0：不通知 1：通知 也可以使用true与false表示)", hidden = true)
    @NotNull(message = "催收通知状态不能为空")
    private Boolean collectionNotifyEnabled = true;

    @ApiModelProperty(value = "催收通知方式(1：邮箱 0：短信 2：全选)", required = true)
    @NotNull(message = "催收通知方式不能为空")
    @Min(value = 0, message = "催收通知方式必须为0、1、2")
    @Max(value = 2, message = "催收通知方式必须为0、1、2")
    private Integer collectionNotifyType;

    @ApiModelProperty(value = "生成账单后催收间隔(天)", required = true)
    @NotNull(message = "催收间隔不能为空")
    @Min(value = 1, message = "催收间隔至少为1天")
    @Max(value = 30, message = "催收间隔最多为30天")
    private Integer collectionAfterDays;

    @ApiModelProperty(value = "首次发送催缴通知间隔(天)", required = true)
    @NotNull(message = "首次通知间隔不能为空")
    @Min(value = 1, message = "首次通知间隔至少为1天")
    @Max(value = 7, message = "首次通知间隔最多为7天")
    private Integer firstNoticeInterval;

    @ApiModelProperty(value = "催收通知最大发送次数", required = true)
    @NotNull(message = "最大发送次数不能为空")
    @Min(value = 1, message = "最大发送次数至少为1次")
    @Max(value = 10, message = "最大发送次数最多为10次")
    private Integer maxNoticeTimes;

    @ApiModelProperty(value = "账单通知自定义备注", required = true)
    @NotNull(message = "账单通知自定义备注不能为空")
    private String billNotificationRemark;
}